package com.projects.api.common.base;

public interface BaseEnum<CODE> {

    CODE getCode();

    String getName();

    ;


    /**
     * 根据code获取枚举
     *
     * @param code
     * @param enumClass
     * @param <T>
     * @return
     */
    static <T> BaseEnum getByCode(String code, Class<T> enumClass) {
        //通过反射取出Enum所有常量的属性值
        for (T enumEach : enumClass.getEnumConstants()) {
            BaseEnum each = (BaseEnum) enumEach;
            //利用code进行循环比较，获取对应的枚举
            if (code.equals(each.getCode().toString())) {
                return each;
            }
        }
        return null;
    }
}